package com.vito.oa.email.service;


import com.vito.base.authoriza.model.UserModel;
import com.vito.base.model.DataGrid;
import com.vito.oa.email.model.OaEmailConfig;
import com.vito.oa.email.model.OaEmailMessage;
import com.vito.oa.email.model.OaJamesUser;

public interface OaEmailService {
	
	/**
	 * 收件箱分页列表
	 * @param emailMessage
	 * @param emailConfig
	 * @return
	 */
//	public DataGrid<OaEmailMessage> getEmailPage(OaEmailMessage emailMessage, OaEmailConfig emailConfig);
	
	/**
	 * 发件箱分页列表
	 * @param emailMessage
	 * @param emailConfig
	 * @return
	 */
//	public DataGrid<OaEmailMessage> getSentEmailPage(OaEmailMessage emailMessage, OaEmailConfig emailConfig);
	
	/**
	 * 
	 * @param emailMessage
	 * @param emailConfig
	 * @return
	 */
//	public DataGrid<OaEmailMessage> getDraftEmailPage(OaEmailMessage emailMessage, OaEmailConfig emailConfig);
	
	/**
	 * 查看邮件
	 * @param emailMessage
	 * @param emailConfig
	 * @return
	 */
//	public OaEmailMessage getViewEmail(Long number, int folderType, OaEmailConfig emailConfig);
	
	/**
	 * 发送邮件
	 * @param emailMessage
	 * @param emailConfig
	 * @param draft
	 * @return
	 */
//	public boolean sendEmail(OaEmailMessage emailMessage, OaEmailConfig emailConfig, boolean draft);
	
	/**
	 * 回复邮件
	 * @param emailMessage
	 * @param emailConfig
	 * @return
	 */
//	public boolean replyEmail(OaEmailMessage emailMessage, OaEmailConfig emailConfig, boolean saveSend);
	
	/**
	 * 删除邮件
	 * @param number
	 * @param emailConfig
	 * @return
	 */
//	public boolean deleteEmail(Long number, OaEmailConfig emailConfig);
	
	/**
	 * 批量删除邮件
	 * @param numbers
	 * @param emailConfig
	 * @return
	 */
//	public boolean delBatchEmail(String numbers, OaEmailConfig emailConfig);
	
	/**
	 * 转发
	 * @param emailMessage
	 * @param emailConfig
	 * @param saveSend
	 * @return
	 */
//	public boolean forwardEmail(OaEmailMessage emailMessage, OaEmailConfig emailConfig, boolean saveSend);
	/**
	 * 草稿邮件再次发送
	 * @param emailMessage
	 * @param emailConfig
	 * @param saveSend
	 * @return
	 */
//	public boolean draftSendEmail(OaEmailMessage emailMessage, OaEmailConfig emailConfig, boolean saveSend);
	
	/**
	 * 草稿箱邮件再次保存
	 * @param emailMessage
	 * @param emailConfig
	 * @return
	 */
//	public boolean saveDraftAgainEmail(OaEmailMessage emailMessage, OaEmailConfig emailConfig);
	
	/**
	 * 转发或回复邮件保存草稿邮件
	 * @param emailMessage
	 * @param emailConfig
	 * @return
	 */
//	public boolean saveReplyForwardDraftEmail(OaEmailMessage emailMessage, OaEmailConfig emailConfig);
	
	/**
	 * 注册邮箱账号
	 * @param jamesUser
	 * @param user
	 * @return
	 */
	public boolean saveUserMail(OaJamesUser jamesUser, UserModel user);
	
	/**
	 * 获取未读邮件
	 * @param count
	 * @param emailConfig
	 * @return
	 */
//	public List<OaEmailMessage> getUnreadMessageList(Integer count, OaEmailConfig emailConfig);
	
	/**
	 * 标记已读未读
	 * @param numbers
	 * @param emailConfig
	 * @return
	 */
//	public boolean updateFlagStatus(String numbers, Integer status, OaEmailConfig emailConfig);
	
	/**
	 * 添加账号
	 * @param jamesUser
	 * @return
	 */
	public boolean addOaJamesUser(OaJamesUser jamesUser);
	
	/**
	 * 修改密码
	 * @param userName
	 * @return
	 */
	public boolean updateJamesUserPassWord(String passWord,String userName);
}

